Memory Type | Bus Width | DMA | CPU | ||
Read Width | Write Width | Read Width | Write Width | ||
OAM | 32 | 16/32 | 16/32 | 16/32 | 16/32 |
Palette RAM | 16 | 16/32 | 16/32 | 16/32 | 16/32 |
VRAM | 16 | 16/32 | 16/32 | 16/32 | 16/32 |
CPU Internal Working RAM | 32 | 16/32 | 16/32 | 8/16/32 | 8/16/32 |
CPU External Working RAM | 16 | 16/32 | 16/32 | 8/16/32 | 8/16/32 |
Internal registers | 32 | 16/32 | 16/32 | 8/16/32 | 8/16/32 |
Game Pak ROM (Mask ROM, Flash Memory) | 16 | 16/32 | 16/32 | 8/16/32 | 16/32 |
Game Pak RAM (SRAM, Flash Memory) | 8 | -- | -- | 8 | 8 |
Good execution efficiency is obtained when programs that operate from the Game Pak use 16-bit instructions (16-bit compiler), and those that operate from CPU Internal Working RAM use 32-bit instructions (32-bit compiler).
In the AGB CPU, memory addresses are allocated in 8-bit increments, and little-endian format is used in implementing the 8-, 16-, and 32-bit access widths.